/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package cn.edu.pku.sei.ra.wrapping.decorate.DecModel.provider;

import cn.edu.pku.sei.ra.wrapping.decorate.DecModel.util.DecModelAdapterFactory;

import java.util.ArrayList;
import java.util.Collection;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.edit.provider.ChangeNotifier;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.INotifyChangedListener;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;

/**
 * This is the factory that is used to provide the interfaces needed to support Viewers.
 * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
 * The adapters also support Eclipse property sheets.
 * Note that most of the adapters are shared among multiple instances.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
public class DecModelItemProviderAdapterFactory extends DecModelAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
	/**
	 * This keeps track of the root adapter factory that delegates to this adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ComposedAdapterFactory parentAdapterFactory;

	/**
	 * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IChangeNotifier changeNotifier = new ChangeNotifier();

	/**
	 * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected Collection<Object> supportedTypes = new ArrayList<Object>();

	/**
	 * This constructs an instance.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public DecModelItemProviderAdapterFactory() {
		supportedTypes.add(IEditingDomainItemProvider.class);
		supportedTypes.add(IStructuredItemContentProvider.class);
		supportedTypes.add(ITreeItemContentProvider.class);
		supportedTypes.add(IItemLabelProvider.class);
		supportedTypes.add(IItemPropertySource.class);
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Decoration} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DecorationItemProvider decorationItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Decoration}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDecorationAdapter() {
		if (decorationItemProvider == null) {
			decorationItemProvider = new DecorationItemProvider(this);
		}

		return decorationItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ImportClass} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ImportClassItemProvider importClassItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ImportClass}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createImportClassAdapter() {
		if (importClassItemProvider == null) {
			importClassItemProvider = new ImportClassItemProvider(this);
		}

		return importClassItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeArea} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CodeAreaItemProvider codeAreaItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeArea}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCodeAreaAdapter() {
		if (codeAreaItemProvider == null) {
			codeAreaItemProvider = new CodeAreaItemProvider(this);
		}

		return codeAreaItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeNone} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CodeNoneItemProvider codeNoneItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeNone}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCodeNoneAdapter() {
		if (codeNoneItemProvider == null) {
			codeNoneItemProvider = new CodeNoneItemProvider(this);
		}

		return codeNoneItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeFragment} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CodeFragmentItemProvider codeFragmentItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeFragment}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCodeFragmentAdapter() {
		if (codeFragmentItemProvider == null) {
			codeFragmentItemProvider = new CodeFragmentItemProvider(this);
		}

		return codeFragmentItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeReference} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CodeReferenceItemProvider codeReferenceItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeReference}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCodeReferenceAdapter() {
		if (codeReferenceItemProvider == null) {
			codeReferenceItemProvider = new CodeReferenceItemProvider(this);
		}

		return codeReferenceItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeComposition} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CodeCompositionItemProvider codeCompositionItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.CodeComposition}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCodeCompositionAdapter() {
		if (codeCompositionItemProvider == null) {
			codeCompositionItemProvider = new CodeCompositionItemProvider(this);
		}

		return codeCompositionItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.MapArea} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected MapAreaItemProvider mapAreaItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.MapArea}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createMapAreaAdapter() {
		if (mapAreaItemProvider == null) {
			mapAreaItemProvider = new MapAreaItemProvider(this);
		}

		return mapAreaItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.GlobalMap} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GlobalMapItemProvider globalMapItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.GlobalMap}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGlobalMapAdapter() {
		if (globalMapItemProvider == null) {
			globalMapItemProvider = new GlobalMapItemProvider(this);
		}

		return globalMapItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ClassMap} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ClassMapItemProvider classMapItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ClassMap}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createClassMapAdapter() {
		if (classMapItemProvider == null) {
			classMapItemProvider = new ClassMapItemProvider(this);
		}

		return classMapItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.FeatureMap} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureMapItemProvider featureMapItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.FeatureMap}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureMapAdapter() {
		if (featureMapItemProvider == null) {
			featureMapItemProvider = new FeatureMapItemProvider(this);
		}

		return featureMapItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.FeatureMapForAbstractClass} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected FeatureMapForAbstractClassItemProvider featureMapForAbstractClassItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.FeatureMapForAbstractClass}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createFeatureMapForAbstractClassAdapter() {
		if (featureMapForAbstractClassItemProvider == null) {
			featureMapForAbstractClassItemProvider = new FeatureMapForAbstractClassItemProvider(this);
		}

		return featureMapForAbstractClassItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Create} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected CreateItemProvider createItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Create}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createCreateAdapter() {
		if (createItemProvider == null) {
			createItemProvider = new CreateItemProvider(this);
		}

		return createItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Destroy} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected DestroyItemProvider destroyItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Destroy}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createDestroyAdapter() {
		if (destroyItemProvider == null) {
			destroyItemProvider = new DestroyItemProvider(this);
		}

		return destroyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Lookup} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected LookupItemProvider lookupItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Lookup}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createLookupAdapter() {
		if (lookupItemProvider == null) {
			lookupItemProvider = new LookupItemProvider(this);
		}

		return lookupItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Identify} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected IdentifyItemProvider identifyItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Identify}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createIdentifyAdapter() {
		if (identifyItemProvider == null) {
			identifyItemProvider = new IdentifyItemProvider(this);
		}

		return identifyItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Get} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GetItemProvider getItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Get}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createGetAdapter() {
		if (getItemProvider == null) {
			getItemProvider = new GetItemProvider(this);
		}

		return getItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Set} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected SetItemProvider setItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Set}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createSetAdapter() {
		if (setItemProvider == null) {
			setItemProvider = new SetItemProvider(this);
		}

		return setItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ListSub} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ListSubItemProvider listSubItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.ListSub}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createListSubAdapter() {
		if (listSubItemProvider == null) {
			listSubItemProvider = new ListSubItemProvider(this);
		}

		return listSubItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Insert} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected InsertItemProvider insertItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Insert}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createInsertAdapter() {
		if (insertItemProvider == null) {
			insertItemProvider = new InsertItemProvider(this);
		}

		return insertItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Remove} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected RemoveItemProvider removeItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.Remove}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createRemoveAdapter() {
		if (removeItemProvider == null) {
			removeItemProvider = new RemoveItemProvider(this);
		}

		return removeItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.UtilMethod} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UtilMethodItemProvider utilMethodItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.UtilMethod}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUtilMethodAdapter() {
		if (utilMethodItemProvider == null) {
			utilMethodItemProvider = new UtilMethodItemProvider(this);
		}

		return utilMethodItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.UtilField} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected UtilFieldItemProvider utilFieldItemProvider;

	/**
	 * This creates an adapter for a {@link cn.edu.pku.sei.ra.wrapping.decorate.DecModel.UtilField}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createUtilFieldAdapter() {
		if (utilFieldItemProvider == null) {
			utilFieldItemProvider = new UtilFieldItemProvider(this);
		}

		return utilFieldItemProvider;
	}

	/**
	 * This keeps track of the one adapter used for all {@link java.util.Map.Entry} instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EStringToStringMapEntryItemProvider eStringToStringMapEntryItemProvider;

	/**
	 * This creates an adapter for a {@link java.util.Map.Entry}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter createEStringToStringMapEntryAdapter() {
		if (eStringToStringMapEntryItemProvider == null) {
			eStringToStringMapEntryItemProvider = new EStringToStringMapEntryItemProvider(this);
		}

		return eStringToStringMapEntryItemProvider;
	}

	/**
	 * This returns the root adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public ComposeableAdapterFactory getRootAdapterFactory() {
		return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
	}

	/**
	 * This sets the composed adapter factory that contains this factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
		this.parentAdapterFactory = parentAdapterFactory;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object type) {
		return supportedTypes.contains(type) || super.isFactoryForType(type);
	}

	/**
	 * This implementation substitutes the factory itself as the key for the adapter.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Adapter adapt(Notifier notifier, Object type) {
		return super.adapt(notifier, this);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object adapt(Object object, Object type) {
		if (isFactoryForType(type)) {
			Object adapter = super.adapt(object, type);
			if (!(type instanceof Class) || (((Class<?>)type).isInstance(adapter))) {
				return adapter;
			}
		}

		return null;
	}

	/**
	 * This adds a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void addListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.addListener(notifyChangedListener);
	}

	/**
	 * This removes a listener.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void removeListener(INotifyChangedListener notifyChangedListener) {
		changeNotifier.removeListener(notifyChangedListener);
	}

	/**
	 * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void fireNotifyChanged(Notification notification) {
		changeNotifier.fireNotifyChanged(notification);

		if (parentAdapterFactory != null) {
			parentAdapterFactory.fireNotifyChanged(notification);
		}
	}

	/**
	 * This disposes all of the item providers created by this factory. 
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void dispose() {
		if (decorationItemProvider != null) decorationItemProvider.dispose();
		if (importClassItemProvider != null) importClassItemProvider.dispose();
		if (codeAreaItemProvider != null) codeAreaItemProvider.dispose();
		if (codeNoneItemProvider != null) codeNoneItemProvider.dispose();
		if (codeFragmentItemProvider != null) codeFragmentItemProvider.dispose();
		if (codeReferenceItemProvider != null) codeReferenceItemProvider.dispose();
		if (codeCompositionItemProvider != null) codeCompositionItemProvider.dispose();
		if (mapAreaItemProvider != null) mapAreaItemProvider.dispose();
		if (globalMapItemProvider != null) globalMapItemProvider.dispose();
		if (classMapItemProvider != null) classMapItemProvider.dispose();
		if (featureMapItemProvider != null) featureMapItemProvider.dispose();
		if (featureMapForAbstractClassItemProvider != null) featureMapForAbstractClassItemProvider.dispose();
		if (createItemProvider != null) createItemProvider.dispose();
		if (destroyItemProvider != null) destroyItemProvider.dispose();
		if (lookupItemProvider != null) lookupItemProvider.dispose();
		if (identifyItemProvider != null) identifyItemProvider.dispose();
		if (getItemProvider != null) getItemProvider.dispose();
		if (setItemProvider != null) setItemProvider.dispose();
		if (listSubItemProvider != null) listSubItemProvider.dispose();
		if (insertItemProvider != null) insertItemProvider.dispose();
		if (removeItemProvider != null) removeItemProvider.dispose();
		if (utilMethodItemProvider != null) utilMethodItemProvider.dispose();
		if (utilFieldItemProvider != null) utilFieldItemProvider.dispose();
		if (eStringToStringMapEntryItemProvider != null) eStringToStringMapEntryItemProvider.dispose();
	}

}
